home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / system / network / aris / beta / release1.bet < prev    next >
Encoding:
Text File  |  1994-05-13  |  28.4 KB  |  743 lines

  1.  
  2.         Installation and Release Notes for NET-2
  3.  
  4.                  Version: 1.1.11 NET-2 Rev.E
  5.  
  6.                 BETA===6
  7.  
  8.              Fri, 13 May 22:00:00 1994 MET DST
  9.  
  10.  
  11.         Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
  12.          Johannes Stille, <johannes@titan.westfalen.de>
  13.           Matthew Dillon, <dillon@apollo.west.oic.com>
  14.       Fred Baumgarten, <dc6iq@insu1.etec.uni-kalrsruhe.de>
  15.         Alan Cox, <iiitac@pyramid.swansea.ac.uk>
  16.         Terry Dawson, <terry@extro.ucc.su.oz.au>
  17.  
  18.  
  19. PREFACE
  20. This document describes what yet has to be done in NET-2, how to install it,
  21. and more of that stuff.  The current NET-2 distribution is a joint effort
  22. mainly by the people mentioned in the header.  A lot of good stuff also comes
  23. from (in no particular order) Fred Baumgarten, Alan Cox and Florian La Roche.
  24. The distribution is mastered by me (Fred.)
  25.  
  26.  
  27. COPYRIGHTS and POLICIES
  28.  
  29. Although this code can be distributed as per GNU Public License, version 2,
  30. some notes still do apply:
  31.  
  32. - The original NET(-1) code for Linux was written by Ross Biro. Although far
  33.   from perfect, we should thank him for donating the code to the public, as
  34.   it took Linux out of the "toy" era.
  35.  
  36. - Many of the internal definitions and such were borrowed from the Berkeley
  37.   UNIX 4.3BSD operating system header files.  This was *NOT* done to rip them
  38.   off, but a way to ensure compatibility with that operating system, as it has
  39.   become the defacto standard for network interfaces to UNIX-like kernels.
  40.  
  41. - Some of the definitions found in and used by the AX.25 layer (which is not
  42.   yet distributed with the mainline of NET-2 code) were taken from the "KA9Q
  43.   NOS Internet Package", written and copyrighted by Phil Karn KA9Q and a lot
  44.   of others.  I did this for the same reason as above, and was careful *NOT*
  45.   to use any *code* or data structures from the KA9Q package - just value
  46.   definitions.
  47.  
  48. - The "Van Jacobsen" SLIP header compression code was taken from the
  49.   "reference implementation" as found in the Berkeley UNIX 4.3BSD operating
  50.   system sources.  From there it was ported to the KA9Q package, which
  51.   implementation was again ported and enhanced by Chuck Hedrick of Rutgers
  52.   University.  See the COPYRIGHT file in the net/drv/slip directory for details.
  53.  
  54. - The "BECKER" series of ethernet device drivers were written by Donald J.
  55.   Becker from the Supercomputing Research Center (SRC); this code is copyrighted
  56.   by and licensed from SRC. See the COPYRIGHT file in the net/drv/becker
  57.   directory for details.
  58.  
  59. - The remainder of the code was mostly written by me, with a lot of other
  60.   people contributing fixes, additions and moral support.  Most of us are
  61.   gathered together (well, sometimes that is :-) on the NET Channel of the
  62.   Linux-Activists mailing list.  Their names can be found in the 'PREFACE'
  63.   section above, and in the headers of the various source files.  Thanks, All!!
  64.  
  65.  
  66.  
  67. INSTALLATION NOTES - Ten Steps To Happiness
  68.  
  69. You'd better read these instructions before installing the NET-2 software on
  70. your machine.  I will basically ignore you if you come up with complaints
  71. caused by not reading this...
  72.  
  73.  
  74. Step 1    Unpacking.
  75.     Create a source directory called /usr/src/linux, and unpack the
  76.     standard kernel source there.  The NET-2 patches are now based on
  77.     the Linux 1.1.11 kernel source.
  78.  
  79. Step 2    Preparing.
  80.     Remove the complete "net" and "drivers/net" subtrees of the kernel
  81.     sources.  Yes, really.  Trust me, I know what I am doing... <GRIN>
  82.     Remove the etherdevice.h, icmp.h, inet.h, ipx.h, net.h, netdevice.h,
  83.     tcp.h and udp.h files in the /usr/include/linux directory, as they
  84.     are unused now...
  85.  
  86. Step 3    Patching.
  87.     If you are using a patch file (only the main NET-2 developers get
  88.     complete kernels), apply it with:
  89.     
  90.         cd /usr/src
  91.         patch -p0 <patch_file
  92.  
  93.     and check the results.  Remove any '.orig' files.  Beware of any
  94.     ".rej" files!!!!!!
  95.  
  96. Step 4    Configuration of Features.
  97.     Check the "net/inet/inet.h" file for the "NET feature selection"
  98.     section, and select the desired options.  Usually, this means:
  99.  
  100.         IP_HAVE_GW    1    /* enable IP gatewaying        */
  101.         IP_GW_SAME    1    /* see comment in ip_forward()    */
  102.         IP_HAVE_OPTS    0    /* enable IP option processing    */
  103.         SK_BSD_BUG    0    /* emulate BSD 'ftp' bug    */
  104.         ICMP_PINGBC     0    /* reply to broadcast ECHO rq's */
  105.         TCP_DELAY_ACK    0    /* default TCP "ack" beheviour    */
  106.  
  107.     If you want ICMP to respond to broadcast addresses (which I
  108.     personally don't think is wise, so I disabled it by default)
  109.     set the ICMP_PINGBC macro to `1' rather than the default '0'.
  110.  
  111.     The TCP "ack" behaviour is a weird thing.  Some systems like
  112.     to delay sending ACK packets for a while, so if the sender is
  113.     sending data reasonably fast, it can "piggyback" the ACK info
  114.     on it.  However, this *can* cause slowness too (which I do
  115.     expercience on my network), so I left it a compile-time option.
  116.     Note that many MS-DOS based TCP/IP stacks need this feature to
  117.     prevent randon TCP lockups from happening.
  118.  
  119.     For the ARP protocol module, these are the values to be changed
  120.     at the top of the "arp/arp.h" file:
  121.  
  122.         ARP_IS_SMART    0    /* use all incoming replies    */
  123.         ARP_PROXY_OK    1    /* allow proxy stuff        */
  124.         ARP_PROXY_MH    1    /* allow multi-home proxy stuff    */
  125.  
  126.     Also: always *use* a kernel that had NETDBG (see below) #undef'ed,
  127.     as it takes a lot of CPU time to process all them debugging calls.
  128.     Make sure you have an identically configured kernel around, which
  129.     has this option enabled.  Software authors like to get a nice set
  130.     of "trace output" dumps when bug reports come in...
  131.  
  132. Step 5    Configuring The Drivers.
  133.     Check the definitions in "net/Space.c", which set up the
  134.     various TCP/IP networking device drivers.  Note that this only
  135.     concerns I/O values and such, not the actual selection of the
  136.     drivers.  That is done at the top level "make config".
  137.  
  138. Step 6    Sex !
  139.     Check the contents of your /usr/include/endian.h file.  If it
  140.     is one of the older versions (a very small file), you have to
  141.     add a line reading:
  142.     --------
  143.     #define __BYTE_ORDER 1234
  144.     --------
  145.     to it, otherwise the kernel will not work.  Better is to upgrade
  146.     your library and header files to a newer one (I use 4.4.4) first.
  147.  
  148. Step 7    Making The Kernel.
  149.     Make config && depend:
  150.  
  151.         # cd /usr/src/linux
  152.         # make mrproper
  153.         # make config
  154.         # make depend
  155.         # make 
  156.  
  157.     This should leave you with a NET-2 Linux kernel.  Before
  158.     rebooting, you will also have to unpack, compile and install the
  159.     NET-2 base utilities (ifconfig and such) on your system first.
  160.  
  161. Step 8    The Utilities.
  162.     Unpack the "net-X.YY.tar.gz" file in some directory, and type
  163.     "make install".  This will check your NET-2 setup (and, if needed,
  164.     create some dummy header files which are not yet part of the LIBC
  165.     release right now), and then compile the commands.
  166.  
  167.     After the compile, it will copy the commands to the correct
  168.     directories, and (NOTE THIS !!!) INSTALL THE DEVICE ENTRIES IN
  169.     /DEV !!!!
  170.  
  171.     I get many messages a week, telling me that "ifconfig" says it
  172.     cannot open some file called /dev/net/socket.  This is correct, but
  173.     you should have typed "make install". So, it is your own fault :-)
  174.  
  175. Step 9    Check...
  176.     Make sure your new configuration files are changed for the new
  177.     syntax of the NET-2e system.  This only applies if you are upgrading
  178.     from a standard kernel.
  179.  
  180. Step 10    BOOM!
  181.     Hit the button.
  182.  
  183.  
  184. QUESTIONS, BUG REPORTS
  185.  
  186. If you experience problems, first take a *GOOD* look at your setup,
  187. and make sure it is correct.  If that seems OK, check out the NET-2
  188. HOWTO, which should be included with the net-base sources.  If the
  189. answer is not there (which is possible, since the HOWTO does not
  190. fully describe the NET-2 system), send a message to the NET channel
  191. of the Linux-Activists mailing list:
  192.  
  193.     linux-activists@niksula.hut.fi
  194.  
  195. with the line 'X-Mn-Key: NET' as the first line of your message. For
  196. NET-2e specific questions, send a message to the
  197.  
  198.     net-beta@aris.com
  199.  
  200. list, which is the NET-2e developers mailing list.
  201.  
  202. Make sure you include the kernel version info, NET-2 and base utils
  203. version info, and (if available) output from the "ifconfig -a",
  204. "arp -a" and "route -n" commands.
  205.  
  206. Contact Terry Dawson (terryd@extro.ucc.su.oz.au) if you found or got
  207. an answer to your question, so he can update the HOWTO with your info.
  208.  
  209.  
  210.  
  211. FAN MAIL
  212.  
  213. If after using this software you still feel the need to contact me,
  214. please do so.  However, note that:
  215.  
  216. - bomb letters and flames give me headaches, so I hired a Personal
  217.   GhostWriter to handle those.  He is known for his very agressive
  218.   replies, so be warned in advance...
  219.  
  220. - the Dutch PTT is not one of the cheapest ones around (actually, it
  221.   is the only one around here, so we don't have a choice...), and it
  222.   it the only way for me to keep in touch with The World.  All this
  223.   means that I have to pay a damn lot of money to get my mail, answer
  224.   it and even for testing out the new software and uploading it to
  225.   the various sites.  If you want to help me pay my phone bills, I
  226.   would appreciate it.  But *PLEASE* do *NOT* send me dollar bills
  227.   or other cash money, as I cannot guarantee their safe arrival. The
  228.   best thing to do is to either contact me first, or (if you live
  229.   in the United States of America) contact Russ Nelson of Crynwr
  230.   Software (nelson@crynwr.com) or Dr. Michael Stokes of the Miss.
  231.   State University (stokes@erc.msstate.edu) on a HOWTO.  Sending
  232.   your dollarbill to their US mail address is safer than sending it
  233.   to my home address, really....
  234.  
  235.   I might consider making the next release of NET-2 "shareware" :-)
  236.  
  237. - if you have any ideas for making the NET-2 code better, or want
  238.   to write a piece of code for it: great!  Email, call or visit me!
  239.  
  240.  
  241.  
  242. KNOWN BUGS
  243.  
  244. Several known bugs remain:
  245.  
  246. - No IP Option Processing yet.
  247.   Work is underways to get this problem out of the way, so do not despair...
  248.  
  249. - TCP Urgent Data (rlogin !) still seems to be broken.  A fix is available,
  250.   but we need some more time to check it out...
  251.  
  252. - Sockets can linger on in the CLOSE state.  It's being investigated.
  253.  
  254. MODIFICATIONS LOG
  255.  
  256. - This release of the NET-2 software has been totally re-organized as a
  257.   set of layers and services, to be better prepared for multiple proto-
  258.   col modules in the kernel, and to allow for easy addition and instal-
  259.   lation of new device drivers.
  260.  
  261. - DDI has been implemented on the "standard" device drivers, and most of
  262.   them can now be configured at boot time.
  263.  
  264. - Added Chuck Hedrick's modifications to the INET layer, and added his
  265.   SLHC additions to the SLIP driver.
  266.  
  267. - Added the patches for TraceRoute, and added this program to the
  268.   NET-EXTRA distribution in patched form.
  269.  
  270. - Moved the general stuff from the routing table to an upper level,
  271.   allowing the DEV module to flush any routes for a particular device.
  272.  
  273. - PLIP has been merged with the other versions, and should work now.
  274.   I got reports from test sites that PLIP worked on their systems,
  275.   giving throughputs of about 22Kbyte/sec.  Not bad...
  276.  
  277. - Added Florian La Roche's new timer code, and added Linus Torvalds'
  278.   additions as well.  The old-style timer code (static timers) is gone
  279.   completely now.
  280.  
  281. - Added lots of changes by Johannes Stille, including the memory-counter
  282.   fixes, fixes for the ARP race conditions, and changes allowing the
  283.   LOOPBACK driver to *not* have to copy its packets anymore.
  284.  
  285. - Added Erik Schoen's ICMP fixes.  This means that TraceRoute requests
  286.   work again, and we now support TimeStamp requests.
  287.  
  288. - Added many of Alan Cox' changes which fixed the misusage of the
  289.   verify_area() call, a lot of FREE_READ->FREE_WRITE calls and some
  290.   `volatile' keywords in linked-list management (skbuff and sock.)
  291.  
  292. - Added Fred Baumgarten's work on TCP/IP retransmits, the PLIP driver
  293.   (added statistics!) and more of that.
  294.  
  295. - Added even more of Alan's work, pertaining to TCP and UDP socket
  296.   handling.  ICMP-probs should be fixed now!
  297.  
  298. - Fixed a problem in ARP /proc output (wrong-order HW type).
  299.  
  300. - Changed the lower-level module interfaces to use 'struct sockaddr'
  301.   rather than 'unsigned char *' for passing hardware addresses, and
  302.   changed <linux/if.h> accordingly.
  303.  
  304. - Added a KISS driver for AX.25 users.  Not completely done yet, but
  305.   it already works fine.  Thanks to Terry for the specs!
  306.  
  307. - Added a very basic AX.25 socket layer for AX.25/NETROM users. This
  308.   is not finished by long, but it's a start.  Again, thanks to Terry
  309.   for sending me the specs.
  310.  
  311. - Changed the "base utils" to reflect the changes above, and started
  312.   on a "modularity support library" lib there.
  313.  
  314. - Changed the *VALUES* of the socket I/O controls.  This means that
  315.   you have to recompile all binaries that use these calls- Sorry :-(
  316.  
  317. - Applied some more patches from Johannes Stille, fixing typos, a very
  318.   nasty bug in the ARP cache handler (thanks to Anthony Rumble too!!!),
  319.   some patches for the PLIP driver, and patches that hopefully fix the
  320.   "netmask" problem people were having with non-8-bit netmasks.
  321.  
  322. - Applied two patches from Matt Dillon that fix problems with multi-
  323.   homes hosts which get connected using "wrong" addresses, and a patch
  324.   that re-fixes the "route xxx gw xxx" problem.  I must have screwed
  325.   this patch earlier...
  326.  
  327. - More patches from Johannes, fixing PLIP (again), DDI-ing D-Link,
  328.   and adding cli/sti protection around the (now-volatile) "inuse"
  329.   fields of the ARP cache and queue structures.
  330.  
  331. - Received the DEPCA driver, will port it to NET-2.
  332.  
  333. - Nuked Matt's 'gw' patch - this is already checked for in the lower
  334.   protocol levels, which is why I scrapped it originally I think.
  335.  
  336. - Fixed the call to arp_find() in inet/ip.c to first set up the desired
  337.   hardware type - otherwise ARP barfs about unsupported HW types, causing
  338.   huge ping times.  Thanks Matt, Ted && Me !
  339.  
  340. - Added Matt Dillon's SLIP6 encapsulation for SLIP, and added the lost
  341.   "AF_UNIX" ioctl fix.
  342.  
  343. - Fixed small bug in inet/route.c (rt_mask()) which caused the netmask
  344.   of the "default" route to be 0x0000.  This forces the router to put
  345.   this route in front of all routes, making it match always.
  346.  
  347. - Also fixed small bug (caused by my new "route" command) that caused
  348.   the default route to be a "host" route, rather than a network route.
  349.   I now force the NETWORK status of this route in the kernel.
  350.  
  351. - Added support for the "metric" argument of the "route" command. This
  352.   means that all NET binaries that rely on the size of the "rtentry"
  353.   structure be recompiled.
  354.  
  355. - Added the BSD 4.4 "rt_genmask" field, which allows faster routing
  356.   on subnets.  Still in testing phase...
  357.  
  358. - Added some small fixes from Johannes.  Fixed the kfree_s(sk, sizeof(sk))
  359.   bug.
  360.  
  361. - Added a patch from Matt Dillon that (should) fix the problem we were
  362.   having with the "much output" locks on TCP sockets.  It appeared that
  363.   the generic packet pool handler could muck up the "output queue" of
  364.   an interface in some circumstances (heavy traffic.)
  365.  
  366. - Added patches from Rick Sladkey that should fix the various RPC and/or
  367.   NFS problems with Linux NET-2 from other platforms.  This patch changes
  368.   the implementation of the inet/sock.c, get_sock() function - the weird
  369.   UDP check is now cleaned up.  Also, the UNIX domain sockets now return
  370.   the proper value when writing to sockets with no readers - this used
  371.   to be EINTR, but is EPIPE now.  Also, little fix to TCP that corrects
  372.   the sending of the SIGPIPE signal with writing to sockets.
  373.  
  374. - Added fix from Johannes to remove the "sk->mtu" field from the TCP
  375.   layer, and to use an "sk->mss" field instead.  We are working towards
  376.   a data structure that will allow the use of runtime-settable TCP and
  377.   IP parameters, mostly for sloowww networks (AMPR !) and SNMP agents.
  378.  
  379. - Added a small fix for the SLIP driver, which should hopefully clean
  380.   up the remaining bad packet bugs there.  Thanks Jim!
  381.  
  382. - Added patches from Michael Riepe <riepe@ifwsn4.ifw.uni-hannover.de>
  383.   that fix the checksum problems we were having with lossy lines like
  384.   SLIP.
  385.  
  386. - Collected the required RFC documents for all protocols supported in
  387.   the NET-2 layer.  This should make protocol conformance checking a
  388.   damned lot easier...
  389.  
  390. - Added Matt Dillon's "skb copy" patches.  This fixes a potential
  391.   problem in the packet handling routines, and it adds the skb_duplicate()
  392.   function.
  393.  
  394. - Upgraded to Linux 0.99.13p, as Linus called this one "allright"
  395.   over dinner last night.  Haha, we'll see about that...
  396.  
  397. - Upgraded to Linux 0.99.13q.  Release "p" wasn't as good as I hoped
  398.   it would be :-)
  399.  
  400. - Added Alan Cox' "TCP Short Write" fix.
  401.  
  402. - Ahhh... finally fixed the TCP freezing bug that kept me from releasing
  403.   the BETA-2 code to The World.  Added a lot of other stuff from Matt
  404.   Dillon, including his Skb Tracking code.  Good work, Matt!
  405.  
  406. - Added in-use field to the IP fragment queue, so we can lock such a
  407.   queue as soon as we're going to mess with it.
  408.  
  409. - Several patches from Matt to post-kick ARP if a packet is queued
  410.   just after an ARP REPLY for that address came in.  Some TCP race
  411.   conditions fixed by adding a new field to the "sock" structure.
  412.  
  413. - Several patches from Johannes that dealt with typos, minor problems
  414.   and a massive changes that make IP routing a lot faster by elimina-
  415.   ting the dual routing table loop.
  416.  
  417. - More typo fixes from Alan and Johannes, and added Alan's fix so a
  418.   socket gets decently released if the system has no free pages left.
  419.   Also, added Alan's "IP forwarding fragments" fixes, to make sure
  420.   that if we have to fragment incoming datagrams that are in itself
  421.   fragments (aii, what a sentence this is!) we preserve the "MF" of
  422.   the original final fragment.  Yikes!
  423.  
  424. - Upgraded to Linux 0.99.13r.
  425.   Complete rewrite of the Release Notes.
  426.  
  427.   ================================ BETA-3 ==================================
  428.  
  429. - Fixed the IP forwarding bugs, as per message from Alan Cox. I indeed
  430.   something funny was going on there, and I was correct...
  431.  
  432. - Added Alan's SO_LINGER stuff.
  433.  
  434. - Fixes from Matt applied to the TCP layer.
  435.  
  436. - OKOK, so Alan didn't do the "IP forwarding fragments" code. Gerhard
  437.   Koerting did :-( sorry, Gerhard...
  438.  
  439. - Changes to the Installation Notes - the B2 distribution was a mess.
  440.  
  441. - Added Pauline Middelink's (hey, don't I know this woman? :-) support
  442.   for the pidentd stuff.
  443.  
  444. - Used various NET-2Debugged fixes as per Alan Cox' bug list.
  445.  
  446. - Fixed the tcp_options option names.
  447.  
  448. - Moved the NETDBG macro to the configuration section, so changed all
  449.   files accordingly.  Note that this makes recompilation of the kernel
  450.   slower, as all NET files will be recompiled...
  451.  
  452. - Changed the ICMP error handler interface a bit to clean up things
  453.   even more.  Pity though that it still doesn't seem to work :-(
  454.  
  455. - Ported to 0.99.14, which has the <linux/major.h> include file. Added
  456.   an entry for Alan's IPX module to the Space.c file.  Added all PL14
  457.   "config.in" network device entries, and started the device driver
  458.   port to NET-2e, with help from Donald.
  459.  
  460. - Added comment in net/inet/sock.c:sys_bind() about one check in there
  461.   causing certain kinds of BSD-ish server programs to fail on the
  462.   bind(2) call.  I found this with the syslogd 5.27 :-(
  463.  
  464. - Added the NET-2Debugged "IP check forward network" patch as a new
  465.   configurable option in "inet.h."  See installation notes above.
  466.  
  467. - Added Matt's TCP "diff" and "window subtraction" fixes.
  468.  
  469. - Added Johannes' patches for IP, TCP and RAW.  This should fix the
  470.   "delayed ACK" syndrome, amongst others.
  471.  
  472. - Upgraded to Linux 0.99.14 ALPHA-c.
  473.  
  474. - Added more patches from Matt to check out the TCP-over-loopback
  475.   problems.  With the latest ones installed, it seems to work OK
  476.   again.
  477.  
  478. - Changed the "loopback" driver to copy its packets again- see item
  479.   above.
  480.  
  481. - Some timing constants changed in the INET modules, as per Matt. Also,
  482.   added a oneliner to prevent SLIP packets from corrupting an "skb->len"
  483.   field.
  484.  
  485. - Added RARP capabilities to the ARP protocol module, based on patches
  486.   sent to me by Ross Martin, <martin@trcsun3.eas.asu.edu> .
  487.  
  488. - Fixed and tested RARP.  Works great now.  Time to release the current
  489.   code as BETA-3....
  490.  
  491. - Many small fixes, changes etc all over.
  492.  
  493.   ================================ BETA-4 ==================================
  494.  
  495. - Fixed the "CONFIG_DE600" vs. "CONFIG_DLINK" problem in net/Space.c.
  496.  
  497. - Added <linux/if_ether.h> additions for ETH_P_AX25 - the use of a
  498.   "dummy" packet value (0x0002, in this case) is better than choosing
  499.   a completely random value.
  500.  
  501. - Restyled the NET-2 "Makefile"s into auto-config mode.  You don't
  502.   need to change the Makefile if you add a device driver or protocol
  503.   module anymore now: Makefile checks it out on its own... :-)
  504.  
  505. - Added NET-2Debugged [1.27] "icmp" fix for sending replies to ICMP
  506.   messages.
  507.  
  508. - Added NET-2Debugged [1.27] "inet/proc" fix for prevent kernel
  509.   panics while dereferencing dead sockets.
  510.  
  511. - Added NET-2Debugged [1.27] "inet/sock" cleanups.
  512.  
  513. - Fixed up all those MAJOR_DEV confusions in the DRIVERS directories.
  514.  
  515. - Added KISS to the set of standard drivers.  *YEAH* !
  516.  
  517. - Cleanup of the source files (addresses, names etc.)
  518.  
  519. - Added Johannes' 4 batches with changes to the B3 system.
  520.  
  521. - OOps- fixed a lost patch from Johannes.
  522.  
  523. - Upgraded to PL14 ALPHA-g.  Which, BTW, doesn't work right.
  524.  
  525. - Lotsa cleanups.
  526.  
  527. - Fixed some "source address" problems in IP and the INET protocols.
  528.  
  529. - As said before, PL14g didn't work.  Upgraded to 14h, which works.
  530.  
  531. - DEPCA driver port.  Bwahh, C++ in a device driver.  What a mess..
  532.  
  533. - Finally continued porting Donald's drivers.  WD works now (I use
  534.   it), and NE and HP compile, too.  SMC Ultra is reported to work.
  535.  
  536. - Upgraded Donald's stuff to the most recent (14j) code, and upgraded
  537.   the kernel too.  Need to wait with the iow.h->asm/io.h stuff.
  538.  
  539. - Fixed the ARP "PERM" deletion bug.
  540.  
  541. - Added PROXY ARP capabilities.  Yeah!
  542.  
  543. - Upgraded to Linux 0.99.14 ALPHA-o.  Does anyone know why we had
  544.   to skip ALPHA-n ??
  545.  
  546. - Fixed small bug in <inet/raw.c> : we filled in the wrong IP source
  547.   address for RAW (i.e. Traceroute) packets.
  548.  
  549. - Upgraded to 0.99.14 ALPHA-p.  A lot of 2-Debugged stuff here, so I'll
  550.   have to start merging again:
  551.  
  552.     + Used the sk->tos and sk->ttl code
  553.     + Used the sk->rcvbuf and sk->sndbuf code
  554.     + Used the new socket options code
  555.     + Zapped out some old code
  556.  
  557.   NOT used:
  558.  
  559.     + Callback code
  560.  
  561. - Hurray, applied Matt's fix for the irritating CONNREFUSED bug.
  562.  
  563. - ... and Johannes' fix for the "ICMP redirect" problem.
  564.  
  565. - ... and FINALLY fixed the damn "ICMP fatal error" not working
  566.   problem.  TCP and UDP now abort the connection in progress if
  567.   they get an ICMP fatal error.
  568.  
  569. - Added Fred Baumgarten's new PROC stuff which fixes the <OOPS>
  570.   problems related to the /proc reading.  Also, it fixes one small
  571.   problem in TCP calculating wrong MSS'es.
  572.  
  573. - Upgraded to Linux 0.99.14q.
  574.  
  575. - Upgraded to Linux 0.99.14s.
  576.  
  577. - Fixed lotsa small things, guided by Johannes' comments and several
  578.   crashes of my home machine, 'metallica.'
  579.  
  580. - Whaaahh.  Quickly fixed up the damn TTL f*ckup, and introduced the
  581.   new "ip_parms" structure to go with it.   This will, soon, allow
  582.   operators to set the IP operating values for the system from runtime,
  583.   without the need to recompile the kernel.  I will make this a system-
  584.   wide feature.
  585.  
  586. - Added Fred Baumgarten's new KISS driver, which includes RMNC and SMACK
  587.   CRC modes.
  588.  
  589. - Moved all KISS and AX.25 code into a new, separately available package
  590.   to allow more frequent updates of that layer.  Send a message to
  591.  
  592.     net-ax25-request@aris.com
  593.  
  594.   for more info on this package.
  595.  
  596.   ================================ BETA-5 ==================================
  597.  
  598. - Aii.  Sometimes a public access system is a good testing ground-
  599.   the FTP server at aris.com showed a nasty, longstanding bug in the
  600.   INET code.  In the inet_bind() function, we were checking for the
  601.   SS_CONNECTED state in sk2->state, should have been sk2->socket->state.
  602.  
  603. - Upgraded to Linux 0.99.14z, adapted the wake_up changes and some driver
  604.   changes.
  605.  
  606. - Upgraded to Linux 0.99.15f, adapted some NET-2Debugged changes (the SLIP
  607.   and Ethernet driver changes, most of all..)
  608.  
  609. - Fixed the PROXY ARP stuff, and added multihomed proxy code.
  610.  
  611. - Upgraded to Linux 0.99.15g.
  612.  
  613. - Changed the "if_timer" in <linux/if.h> to be both an "if_rxtimer" and
  614.   an "if_txtimer", as required by the ATP driver.
  615.  
  616. - Finished the ATP driver.
  617. - Finished the EtherExpress driver.
  618. - Finished the Z-Note driver.
  619. - Finished the LANCE (AT1500) driver.
  620. - Finished the AT1700 driver.
  621.  
  622. - Upgraded to Linux 0.99.15h.
  623.  
  624. - Ported the new Linux 0.99.15h DEPCA driver.
  625.  
  626. - Fixed the IP "inaddr src" confusion.
  627.  
  628. - Added the PROMISC stuff. Yikes: had to change the driver interface
  629.  to get this done in a resonable clean way.
  630.  
  631. - Upgraded to Linux 0.99.15j, and added the driver patches.
  632.  
  633. - Fixed the Becker drivers.  I initialized all of them *twice*, which
  634.   caused the IRQ allocation problems.  Grin.
  635.  
  636. - Changed the LOOP driver to have the packet-copying stuff as a config
  637.   option again.  What can I say?
  638.  
  639. - ATP driver is working now.  Status is now:
  640.  
  641.     Ultra:    works (SMC Ultra tested)
  642.     WD80x3:    works (WD8013 tested)
  643.     NE2000:    works (NE1000 tested)
  644.     3c501:    works, sortof (card is buggy...)
  645.     3c503:    dunno (had irq probs, see above)
  646.     3c509:    dunno
  647.     ATP:    works (AT-LAN-TEC clone tested)
  648.     DEPCA:    works (DE200 Turbo tested)
  649.     PLIP:    works (not with NET2Debugged, uses another protocol..)
  650.  
  651. - Tested the DELAY_ACK stuff.  It still causes TCP sessions to hang after
  652.   some amount of data.  Tested this with *large* FTP transfers....
  653.  
  654. - Changed the Becker drivers to dynamically (at make time) check which
  655.   drivers should be compiled/linked.  I don't like it much, but the other
  656.   compilation scheme included too much stuff into the kernel.
  657.  
  658. - Upgraded to Linux pre-1.0. Used the UNIX 'proc' locking fix from
  659.   NET-2Debugged, by Dmitry Gorodchanin.
  660.  
  661. - Upgraded to Linux 1.0 and added the Copyright notices all over.
  662.   Released NET-2 Rev.E BETA-5.
  663.  
  664.   ================================ BETA-6 ==================================
  665.  
  666. - Added patches from NET-2Debugged (written by Gerhard Koerting) that
  667.   improve the forwarding of IP packets by honoring their TOS bits.
  668.  
  669. - Checked some allegedly broken mem allocation problems in IP fragment
  670.   handling- they're OK.
  671.  
  672. - Added Andries' Brouwer's patch to the UNIX socket code, where the bind(2)
  673.   call returned the wrong error return for "in use" addresses.  It returned
  674.   the -EEXIST code, which should be the -EADDRINUSE code.
  675.  
  676. - Installed the new, cleaned up PLIP code (0.8.0), which will be the base
  677.   for the PARALLEL.COM DOS packet driver.  It no longer uses ARP.
  678.  
  679. - Fixed the device driver trashing by the PKT layer.  The PKT layer would
  680.   allow packets larger than the driver's MTU to be sent to the driver. We
  681.   don't want each driver to have to check the packet sizes, so we simply
  682.   dump all too-large packets at the PKT layer now.
  683.  
  684. - Added the -EMSGSIZE return to UDP sendto(), as required by the BSD socket
  685.   interfacing "standard."  It would return nothing, or -ENOMEM otherwise..
  686.  
  687. - Started changing ENOMEN to ENOBUFS wherever needed.
  688.  
  689. - Fixed the long-standing ARP problem caused by the IP fragmenter.  It
  690.   was a silly typo, <blush>
  691.  
  692. - Added the 'dontroute' flag and support code.
  693.   Basically, this flag, when set, causes the IP router to bypass the IP
  694.   routing table and only use the IP addresses of the interfaces available.
  695.   This also changes the behaviour of the UDP sendto() function.
  696.  
  697. - Fixed the UDP and RAW sendto(2) - these calls never de-allocated the
  698.   socket memory after sending a packet to IP.  And IP never does it
  699.   either, soooo.... these sockets would tend to "fill up and freeze".
  700.  
  701. - Added Alex Bligh' BIGBUFFER code hack to the SKBUFF module.  As he
  702.   stated himself: it ain't pretty, but it works for now.  We'll do it
  703.   better later on...
  704.  
  705. - Eeeek.  Fixed a nasty typo in ip.c, which caused connections (both UDP
  706.   and TCP) to hang.  This undoes the UDP/RAW "fix" above, which tried to
  707.   fix the same problem, but wrongly.
  708.  
  709. - Changed the Ethernet driver "interface naming" scheme.  All drivers now
  710.   use driver-specific names at startup ("wd0", "ne1" etc), but as soon as
  711.   a card is detected, it is given a generic "ethernet interface" name, as
  712.   determined by the ETH service.  Usually, this means the next name in the
  713.   "ethN" series of names.
  714.   This should fix a lot of confusion when using non-Becker drivers, most
  715.   especially the DEPCA and D-Link drivers.
  716.  
  717. - Tiny typo fixed in the Ioctl code, which caused MTU's to look funny
  718.   when "ifconfig" was run by a non-root user.
  719.  
  720. - Changed the LINK ENCAP stuff used by SLIP and KISS to be more general,
  721.   and to be less expensive w.r.t. "address family" types.  A driver now
  722.   uses a single address family type (i.e. ARPHRD_SLIP, ARPHRD_KISS) with
  723.   a local "XXX_ENCAP_YYY" sub-division.  Ifconfig will use a link-encap
  724.   if it thinks this is needed.  This is in preparation of the PPP driver.
  725.  
  726. - Upgraded to Linux 1.0.6, and used the 3c509 fix.
  727.  
  728. - Upgraded to Linux 1.1.8, added various fixes.
  729.  
  730. - Fixed the reported CSLIP bug.
  731.  
  732. - Added Johannes' "rsh" patchkit.
  733.  
  734. - Ported and added the PPP-0.2.1 package.  Yeah!
  735.  
  736. - Upgraded to Linux 1.1.11.
  737.  
  738. - Upgraded PPP to release 0.2.5 of the original driver.
  739.  
  740. - Released as NET-2E BETA-6.
  741.  
  742.   ================================ BETA-7 ==================================
  743.